home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / bin / Etbg_update_list < prev    next >
Text File  |  2005-12-09  |  3KB  |  104 lines

  1. #!/bin/sh
  2. #
  3. # Eterm backgrounds list file update utility
  4. #
  5. # $Id: Etbg_update_list,v 1.7 2003/12/22 20:50:52 mej Exp $
  6.  
  7. LISTFILE=pixmaps.list
  8.  
  9. if [ "x$1" = "x-m" ]; then
  10.     shift
  11.     ETBG_MENUFILE="$1"
  12.     export ETBG_MENUFILE
  13.     shift
  14.     exec 3> "$ETBG_MENUFILE"
  15. else
  16.     exec 3>/dev/null
  17. fi
  18.  
  19. if [ "x$1" = "x-h" -o "x$1" = "x--help" ]; then
  20.     echo "Syntax:  Etbg_update_list [path]"
  21.     echo "   (The default path is the current directory.)"
  22.     echo
  23.     exit 0
  24. fi
  25.  
  26. # Find the pixmap directory
  27. for i in "$1" "$PWD" "$PWD/pix" "$PWD/../pix" ; do
  28.     if [ -d "$i/tile" -o -d "$i/scale" ]; then
  29.         PIXDIR="$i"
  30.         break
  31.     fi
  32. done
  33.  
  34. cd $PIXDIR
  35.  
  36. # Make sure sed works; if not, use perl
  37. SEDCMD="sed -e 's/[-_]/ /g' -e 's/^\(.\)/\u\1/' -e 's/ \(.\)/ \u\1/g' -e 's/\....$//'"
  38. if [ "x`echo i | sed -e 's/^\(.\)/\u\1/'`" != "xI" ]; then
  39.     SEDCMD='perl -p -e "s/[-_]/ /g; s/^(.)/\u\1/; s/ (.)/ \u\1/g; s/\....$//;"'
  40. fi
  41.  
  42. # Generate new pixmap list from tile/ and scale/ directories
  43. echo "Etbg_update_list:  Generating pixmap list file from images in tile/ and scale/..."
  44. true > $LISTFILE.new
  45.  
  46. cat >&3 <<EOF
  47. begin menu
  48.   title Tiled
  49. EOF
  50. if [ -d tile ]; then
  51.     for i in `(cd tile && ls -1)` ; do 
  52.         echo '"tile/'$i'@0+0:tile"' >> $LISTFILE.new
  53.         echo "  begin menuitem" >&3
  54.         eval echo "\ \ \ \ text \\\"\`echo $i | $SEDCMD\`\\\"" >&3
  55.         echo "    action string \"\\e]20;tile/$i;0+0:tile\\a\"" >&3
  56.         echo "  end" >&3
  57.     done
  58. fi
  59. cat >&3 <<EOF
  60. end
  61. begin menu
  62.   title Scaled
  63. EOF
  64.  
  65. if [ -d scale ]; then
  66.     for i in `(cd scale && ls -1)` ; do \
  67.         echo '"scale/'$i'@100"' >> $LISTFILE.new ; \
  68.         echo "  begin menuitem" >&3
  69.         eval echo "\ \ \ \ text \\\"\`echo $i | $SEDCMD\`\\\"" >&3
  70.         echo "    action string \"\\e]20;scale/$i;100\\a\"" >&3
  71.         echo "  end" >&3
  72.     done
  73. fi
  74. echo "end" >&3
  75.  
  76. # Check to see if the list has changed.  If so, back up the old one.
  77. if [ -s $LISTFILE ]; then
  78.     if (diff $LISTFILE $LISTFILE.new >/dev/null 2>&1); then
  79.         echo "Pixmap list is unchanged."
  80.         rm -f $LISTFILE.new
  81.     else
  82.         echo "Old pixmap list will be saved in $LISTFILE.old"
  83.         mv -f $LISTFILE $LISTFILE.old
  84.     fi
  85. fi
  86. if [ -s $LISTFILE.new ]; then
  87.     mv -f $LISTFILE.new $LISTFILE
  88. fi
  89.  
  90. # If there's no theme directory nearby, just quit.
  91. if [ ! -d "../themes" ]; then
  92.     exit 0
  93. fi
  94.  
  95. # If there is, cd into it and make sure all the themes have list files.
  96. cd ../themes
  97. for i in `ls -1` ; do
  98.     if [ -f $i/theme.cfg -a ! -f $i/$LISTFILE ]; then
  99.         echo "Creating symlink to $LISTFILE for theme $i"
  100.         rm -f $i/$LISTFILE
  101.         ln -f -s ../../pix/$LISTFILE $i/$LISTFILE
  102.     fi
  103. done
  104.